<?php

/**
 * Copyright (c) 2008-2011 Submit Consulting. Lima-Peru. All Right Reserved.
 * @author Ing. Angel Sullon M. (asullom@hotmail.com)
 * Created: 21.SEP.2000
 * Last Modify: 11.AGO.2011
 * Description of EquipoData: CRUD
 */
class EquipoData {
	//EquipoId,
	//ProyectoId,
	//UsuarioId,
        //Rol,
        //FechaAlta,
        //EstaActivo
	public function create(Equipo $nuevo) {
		$tran= new ConnectDB();
		$tran->getConnection();
		$r=0;
		try{
			$tran->begin();
			$qry=" SELECT COALESCE(MAX(EquipoId)+1,1) AS Id FROM Equipo ";
			$rs=mysql_query($qry) or die("<p class=error>".mysql_error()." table Equipo</p>");
			if( $row=mysql_fetch_array($rs) )
			$nuevo->setEquipoId( $row["Id"] );
			$qry=" INSERT INTO Equipo
            	(EquipoId,ProyectoId,UsuarioId, Rol, EstaActivo,
                FechaAlta)
                values(?,?,?,?,?,      now()) ";
			$pre = new PrepareQuery($qry);
			$pre->set($nuevo->getEquipoId());
			$pre->set($nuevo->getProyectoRef()->getProyectoId());
                        $pre->set($nuevo->getUsuarioRef()->getUsuarioId());
			$pre->set($nuevo->getRol());
			$pre->set($nuevo->getEstaActivo());
			mysql_query($pre->getQuery()) or trigger_error("<p class=error>".mysql_error()." table Equipo", E_USER_ERROR. "</p>");;
			$r=mysql_affected_rows();
			$tran->commit();
		}catch(Exception $e){
			$tran->rollback();
			throw new GlobalException("EquipoData.create ".$e->getMessage());
		}
		$tran->close();
		return $r;
	}

	public function listByFilter($filter) {//CRUD create, reader, update, delete
		$tran= new ConnectDb();
		$tran->getConnection();
		$li=array();
		try{
			$qry=" SELECT u.EquipoId,u.ProyectoId,u.UsuarioId,
                            u.Rol,
                             u.EstaActivo, DATE_FORMAT(u.FechaAlta, '%d/%c/%Y') as FechaAlta
                FROM Equipo u
                WHERE  UPPER(u.ProyectoId) LIKE UPPER(?)
                order by u.ProyectoId";
			$pre = new PrepareQuery($qry);
			$pre->set($filter."%");
			$rs=mysql_query($pre->getQuery()) or trigger_error("<p class=error>".mysql_error()." table Equipo", E_USER_ERROR. "</p>");
			$u=0;
			while( $row=mysql_fetch_array($rs) ) {
				$d=new Equipo();
				$d->setEquipoId($row["EquipoId"]);
				$d->getProyectoRef()->setProyectoId($row["ProyectoId"]);
                                $d->getUsuarioRef()->setUsuarioId($row["EstaActivo"]);
				$d->setRol($row["Rol"]);
                                $d->setEstaActivo($row["EstaActivo"]);
                                $d->setFechaAlta($row["FechaAlta"]);
				$li[$u++]=$d;
			}
			mysql_free_result($rs);
		}catch(Exception $e){
			throw new GlobalException("EquipoData.listByFilter ".$e->getMessage());
		}
		$tran->close();
		return $li;
	}

	public function findByPk($id) {
		$tran= new ConnectDB();
		$tran->getConnection();
		$d=new Equipo();
		try{
			$qry=" SELECT u.EquipoId,u.ProyectoId,u.UsuarioId,
                u.Rol,
                u.EstaActivo, DATE_FORMAT(u.FechaAlta, '%d/%c/%Y') as FechaAlta
                FROM Equipo u
                WHERE  u.EquipoId=?";
			$pre = new PrepareQuery($qry);
			$pre->set($id);
			$rs=mysql_query($pre->getQuery()) or trigger_error("<p class=error>".mysql_error()." table Equipo", E_USER_ERROR. "</p>");;
			if( $row=mysql_fetch_array($rs) ) {
				$d->setEquipoId($row["EquipoId"]);
				$d->getProyectoRef()->setProyectoId($row["ProyectoId"]);
                                $d->getUsuarioRef()->setUsuarioId($row["EstaActivo"]);
				$d->setRol($row["Rol"]);
                                $d->setEstaActivo($row["EstaActivo"]);
                                $d->setFechaAlta($row["FechaAlta"]);
			}
			mysql_free_result($rs);
		}catch(Exception $e){
			throw new GlobalException("EquipoData.findByPk ".$e->getMessage());
		}
		$tran->close();
		return $d;
	}

	public function update(Equipo $dato) {
		$tran= new ConnectDB();
		$tran->getConnection();
		$r=0;
		try{
			$qry=" UPDATE Equipo SET
                ProyectoId = ?,UsuarioId = ?, Rol = ?, EstaActivo = ?
                WHERE EquipoId=?";
			$pre = new PrepareQuery($qry);
			$pre->set($dato->getProyectoRef()->getProyectoId());
			$pre->set($dato->getUsuarioRef()->getUsuarioId());
			$pre->set($dato->getRol());
			$pre->set($dato->getEstaActivo()); // $dato->getEstaActivoRef()->getUsuarioId() ? $dato->getEstaActivoRef()->getUsuarioId() : null
			$pre->set($dato->getEquipoId());
			mysql_query($pre->getQuery()) or trigger_error("<p class=error>".mysql_error()." table Equipo", E_USER_ERROR. "</p>");
			$r=mysql_affected_rows();
		}catch(Exception $e){
			throw new GlobalException("EquipoData.update ".$e->getMessage());
		}
		$tran->close();
		return $r;
	}

	public function delete($id) {
		$tran= new ConnectDB();
		$tran->getConnection();
		$r=0;
		try{
			$qry=" DELETE FROM Equipo WHERE EquipoId=? ";
			$pre = new PrepareQuery($qry);
			$pre->set($id);
			mysql_query($pre->getQuery()) or trigger_error("<p class=error>".mysql_error()." table Equipo", E_USER_ERROR. "</p>");;
			$r=mysql_affected_rows();
		}catch(Exception $e){
			throw new GlobalException("EquipoData.delete ".$e->getMessage());
		}
		$tran->close();
		return $r;
	}
}
?>
